"""
dumps()：将 Python 对象编码成 JSON 字符串
loads()：解码 JSON 数据，该函数返回 Python 对象
dump()： Python 对象编码，并将数据写入 json 文件中
load()：从 json 文件中读取数据并解码为 Python 对象
indent：根据数据格式缩进显示，默认为 None，没有缩进
ensure_ascii：对中文使用 ASCII 编码，默认为 True
"""

# 定义pytho结构
import json

# data = {
#     'a': 1,
#     'b': ['2', '3'],
#     'c': True,
#     'd': False,
#     'e': None,
# }
# 将python 对象编码为json字符串
# json_data = json.dumps(data)
# print(json_data)

# 定义json字符串
# json_data = '{"a": 1, "b": ["2", "3"], "c": true, "d": false, "e": null}'
# # 将json字符串转化为python 对象
# python_data = json.loads(json_data)
# print(python_data)
# print(type(python_data))

# 把python 对象转化为 json 格式的数据并且写入json文件
# with open('data.json', 'w') as f:
#     json.dump(data, f)

# 读取json 文件， 并且转化成python对象
# with open('data.json', 'r') as f:
#     datas = json.load(f)
#     print(datas)
#     print(type(datas))

data1 = {
    'a': 1,
    'b': '霍格沃兹',
    'c': True,
    'd': False,
    'e': None,
}
json_data = json.dumps(data1, ensure_ascii=False, indent=4)
print(json_data)